package com.huishao.api.entity;

import java.util.Date;
import java.io.Serializable;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.experimental.Accessors;
import lombok.EqualsAndHashCode;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * (User)表实体类
 *
 * @author huishao
 * @since 2022-12-29 15:29:28
 */
@ApiModel("User")
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("user")
public class User implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ApiModelProperty("主键")
    @TableId(value = "id", type = IdType.ASSIGN_UUID)
    private String id;
    /**
     * 姓名
     */
    @ApiModelProperty("姓名")
    private String name;
    /**
     * 登录名
     */
    @ApiModelProperty("登录名")
    @TableField(value = "login_name")
    private String loginName;
    /**
     * 密码
     */
    @ApiModelProperty("密码")
    private String password;
    /**
     * 状态(normal_正常；disable_禁用)
     */
    @ApiModelProperty("状态(normal_正常；disable_禁用)")
    private String status;
    /**
     * 邮箱
     */
    @ApiModelProperty("邮箱")
    private String email;
    /**
     * 头像
     */
    @ApiModelProperty("头像")
    @TableField(value = "head_img")
    private String headImg;
    /**
     * 性别（man; woman）
     */
    @ApiModelProperty("性别（man; woman）")
    private String sex;
    /**
     * 身份（是否管理员 0:是 ；1:不是）
     */
    @ApiModelProperty("身份（是否管理员 0:是 ；1:不是）")
    private String identity;
    /**
     * 上次登录时间
     */
    @ApiModelProperty("上次登录时间")
    @TableField(value = "last_login_time")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date lastLoginTime;
    /**
     * 上次修改密码时间
     */
    @ApiModelProperty("上次修改密码时间")
    @TableField(value = "last_update_pwd_time")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date lastUpdatePwdTime;
    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    @TableField(value = "create_time",fill= FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date createTime;
    /**
     * 创建人
     */
    @ApiModelProperty("创建人")
    @TableField(value = "create_name")
    private String createName;
    /**
     * 修改时间
     */
    @ApiModelProperty("修改时间")
    @TableField(value = "update_time",fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date updateTime;

    // fill = FieldFill.INSERT ~ fill = FieldFill.INSERT_UPDATE 自动填充时间！

}

